1. Technical Field
The present invention relates to data processing and, in particular, to debugging software code. Still more particularly, the present invention provides a method, apparatus, and program product for fast source file to line number table association in a debugger.
2. Description of Related Art
A debugger is software that helps a programmer debug a program by stopping at certain breakpoints and displaying various programming elements. The programmer can step through source code statements one at a time while the corresponding machine instructions are being executed. Many debuggers allow users to set a breakpoint by identifying a filename and a line number. A debugger does so by mapping the given filename and line number to a machine address in a line number table.
Thus, when the debugger encounters a breakpoint in the form of a filename and a line number, the debugger may examine the line number table for the file and determine the corresponding machine address. Assuming an application contains multiple compilation units and every compilation unit produces at least one line number table, searching through all the line number tables within the application to find entries corresponding to the given filename may be a computationally expensive task.
One common approach to solve this problem is to build a persistent table to keep track of the relationship between the filename and the corresponding line number table. Building this table, referred to as the “file information database,” is computationally expensive, but needs to be done once per debugging session. Depending on when the file information database is built, this process may cause a long debug session startup time or a long wait time when the user sets a breakpoint for the very first time. However, the advantage of the file information database is to allow efficient access to the line number information for subsequent queries.